/*  GMooc - A Java web application for delivering massive open online courses
*   Copyright (C) 2012 Charles A. Wight
*   
*    This program is free software: you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation, either version 3 of the License, or
*   (at your option) any later version.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.gmooc;

import java.io.IOException;

import javax.persistence.Transient;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import com.googlecode.objectify.Objectify;

@SuppressWarnings("serial")
public class Login extends HttpServlet {
	
	@Transient static UserService userService = UserServiceFactory.getUserService();
	Objectify ofy = new DAO().ofy();
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		
		User user = null;  // placeholder for Gmooc User object
		com.google.appengine.api.users.User u = null;
		try {
			u = userService.getCurrentUser();
			user = ofy.get(User.class,u.getUserId());
			if (user.isStudent()) request.getSession().setAttribute("User",user);
		} catch (Exception e) {  // provision a new user account
			user = User.createUserServiceUser(u);
		}
		response.sendRedirect(user.needsNewTermsAgreement()||user.isDeactivated()?"/profile":"/");
	}
}